package com.hospital.hospitalserver.mapper;

import com.hospital.hospitalserver.entity.FeeItemInfo;
import com.hospital.hospitalserver.entity.PatientVisitDTO;
import com.hospital.hospitalserver.entity.Vo.PatientVisit;
import com.hospital.hospitalserver.entity.query.DoctorPatientQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 医生-患者挂号就诊相关方法
 * */
@Mapper
public interface PatientVisitMapper {
    /**
     * 获取医生当天挂号患者列表
     * @DoctorPatientQuery 医生问诊查询患者信息
     * @return 患者列表
     */
    List<PatientVisitDTO> selectTodayPatientListByDoctor(DoctorPatientQuery query);

    /**
     * 根据当前医生id获取其所有患者挂号数据总数
     * 带条件查询
     * */
    Integer getPatientVisitCountsBySearch(DoctorPatientQuery query);

    /**
     * 根据当前医生id获取其所有患者挂号分页数据
     * 带条件查询
     * */
    List<PatientVisitDTO> getPatientVisitListBySearch(DoctorPatientQuery query);

    /**
     * 开始诊断 - 更新患者状态
     * */
    Integer updatePatientVisitStatus(PatientVisitDTO request);

    /**
     * 结束完成 - 更新患者状态
     * */
    Integer updatePatientVisitCompleteStatus(PatientVisitDTO request);

    /**
     * 根据visit_id查询患者就诊信息
     * */
    PatientVisit getPatientVisitDataByVisitID(@Param("visit_id") Integer id);

    /**
     * 根据挂号编号查询当天患者的挂号是否有效
     * */
    PatientVisit validatePatientVisitAppointmentId(@Param("appointment_id") String appointmentId);
}
